﻿using System;

namespace SeizyUtils.AppCode.Common.Data.Model.Bean
{
    class WarehouseStockResult : ClonableBean
    {
        /// <summary>
        /// 施設コード
        /// </summary>
        public string INSTITUTION_CODE { get; set; }

        /// <summary>
        /// 物品コード
        /// </summary>
        public string ITEM_CODE { get; set; }

        /// <summary>
        /// ロット番号
        /// </summary>
        public string LOT_NO { get; set; }

        /// <summary>
        /// シリアル番号
        /// </summary>
        public string SERIAL { get; set; }

        /// <summary>
        /// 実在庫数
        /// </summary>
        public int? REAL_STOCK { get; set; }

        /// <summary>
        /// 在庫数
        /// </summary>
        public int? STOCK { get; set; }

        /// <summary>
        /// 使用期限
        /// </summary>
        public string LIMIT_DATE { get; set; }

        /// <summary>
        /// 棚差区分
        /// </summary>
        public int? SHELF_DIFF_KBN { get; set; }

        /// <summary>
        /// コードID
        /// </summary>
        public string CODE_ID { get; set; }

        /// <summary>
        /// 換算数
        /// </summary>
        public int? CONVERSION_NUM { get; set; }

        /// <summary>
        /// 在庫数サマリ
        /// </summary>
        public int? STOCK_SUMMARY { get; set; }

        /// <summary>
        /// コード名称
        /// </summary>
        public string CODE_NAME { get; set; }

        /// <summary>
        /// JANコード
        /// </summary>
        public string JAN_CODE { get; set; }

        /// <summary>
        /// ロット管理区分
        /// </summary>
        public int? LOT_KBN { get; set; }

        /// <summary>
        /// シリアル管理区分
        /// </summary>
        public int? SERIAL_KBN { get; set; }

        /// <summary>
        /// 物品名
        /// </summary>
        public string ITEM_NAME { get; set; }

        /// <summary>
        /// 規格
        /// </summary>
        public string STANDARD { get; set; }

        /// <summary>
        /// メーカー品番
        /// </summary>
        public string HINBAN { get; set; }

        /// <summary>
        /// 棚卸情報受信区分
        /// </summary>
        public int? RECEPTION_KBN { get; set; }

        /// <summary>
        /// シリアル管理でもロット管理でもないか判定します。
        /// </summary>
        /// <returns></returns>
        public bool isNoKubun()
        {
            return this.LOT_KBN == 0 && this.SERIAL_KBN == 0;
        }

        /// <summary>
        /// シリアル管理でもロット管理でもない場合は在庫数サマリ、それ以外は在庫数を返します。
        /// </summary>
        /// <returns></returns>
        public int? getStockOrStockSummary()
        {
            if (this.isNoKubun())
            {
                return STOCK_SUMMARY;
            }
            else
            {
                return STOCK;
            }
        }

    }
}
